package org.zhengquan.dao;

import org.apache.ibatis.annotations.Param;
import org.zhengquan.pojo.SysUser;
import org.zhengquan.vo.PageQuery;

import java.util.List;

public interface SysUserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysUser record);

    int insertSelective(SysUser record);

    SysUser selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysUser record);

    int updateByPrimaryKey(SysUser record);

    /**
     * 根据关键词查询用户
     *
     * @param keyword
     * @return
     */
    SysUser selectByKeyword(@Param("keyword") String keyword);

    /**
     * 根据mail判断用户数量
     *
     * @param mail
     * @param id
     * @return
     */
    int countByMail(@Param("mail") String mail, @Param("id") Integer id);

    /**
     * 根据telephone判断用户数量
     *
     * @param telephone
     * @param id
     * @return
     */
    int countByTelephone(@Param("telephone") String telephone, @Param("id") Integer id);


    /**
     * 根据deptId查询部门下用户总数量
     *
     * @param deptId
     * @return
     */
    int countByDeptId(@Param("deptId") Integer deptId);

    /**
     * 根据deptId查询部门下用户列表
     *
     * @param deptId
     * @param pageQuery
     * @return
     */
    List<SysUser> selectPageByDeptId(@Param("deptId") Integer deptId, @Param("pageQuery") PageQuery pageQuery);

    /**
     * 根据userId查询用户
     *
     * @param userIdList
     * @return
     */
    List<SysUser> selectByIdList(@Param("userIdList") List<Integer> userIdList);

    /**
     * 查询所有用户
     *
     * @return
     */
    List<SysUser> selectAllUsers();

}